<template>
	<div class="cmt-container">
		<h3>发表评论</h3>
		<hr>
		<textarea placeholder="请输入要BB的内容（最多吐槽120字）" maxlength="120" v-model="msg"></textarea>
		<mt-button type="primary" size="large" @click="postComment">发表评论</mt-button>

		<div class="cmt-list">
			<div class="cmt-tiem" v-for="(item,i) in comments" :key="item.add_time + i">
				<div class="cmt-title">
					第{{i+1}}楼&nbsp;&nbsp;用户：{{item.user_name}}&nbsp;&nbsp;发表时间：{{item.add_time | dataFormat}}
				</div>
				<div class="cmt-body">
					{{item.content === 'undefined' ? '此用户很懒，啥都没说' : item.content}}
				</div>
			</div>
		</div>

		<mt-button type="danger" size="large" plain @click="getMore">加载更多</mt-button>
	</div>
</template>

<script>

    import {Toast} from 'mint-ui';

    export default {
        name: "comment",
        data() {
            return {
                pageIndex: 1, // 默认展示第一页数据
                comments: [], // 所有的评论数据
                msg: '', // 评论输入的内容
            }
        },
        created() {
            this.getComments();
        },
        methods: {
            getComments() {
                this.$http.get("api/getcomments/" + this.id + "?pageindex=" + this.pageIndex).then((result) => {
                    if (result.body.status === 0) {
                        // this.comments = result.body.message;
                        // 每当获取新评论数据的时候，不要把老数据清空，而是应该以老数据拼接上新的数据
                        this.comments = this.comments.concat(result.body.message);
                    } else {

                        Toast('获取评论失败！')
                    }
                })
            },
            getMore() { // 获取评论
                this.pageIndex++;
                this.getComments();
            },
            postComment() {	// 发表评论
                // 校验是否为空内容
                if (this.msg.trim().length === 0) {
                    return Toast('评论内容不能为空！')
                }
                /**
                 * url：请求url的对象
                 * data: 提交服务器的数据对象 {content ： this.msg}
                 */
                this.$http.post('api/postcomment/' + this.$route.params.id, {content: this.msg.trim()}).then((result) => {
                    if (result.body.status === 0) {
                        // 1、拼接出一个评论对象
                        var ctm = {user_name: '匿名用户', add_tiem: Date.now(), content: this.msg.trim()};
                        this.comments.unshift(ctm);
                        this.msg = "";
                    } else {
                        return Toast('提交评论失败！');
                    }
                })
            }
        },
        props: ['id']
    }
</script>

<style lang="less" scoped>
	.cmt-container {
		h3 {
			font-size: 18px;
		}

		textarea {
			font-size: 14px;
			height: 85px;
			margin: 0;
		}

		.cmt-list {
			margin: 5px 0;

			.cmt-tiem {
				font-size: 13px;

				.cmt-title {
					line-height: 30px;
					background-color: #cccccc;
				}

				.cmt-body {
					line-height: 35px;
					text-indent: 2em;
				}
			}
		}
	}
</style>